package cn.yunhe.crm.dao;

import java.util.List;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

import cn.yunhe.crm.entity.Emp;
import cn.yunhe.crm.entity.EmpExample;


import java.util.Map;

public interface EmpMapper {
    int countByExample(EmpExample example);

    int deleteByExample(EmpExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Emp record);

    int insertSelective(Emp record);

    List<Emp> selectByExample(EmpExample example);

    Emp selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Emp record, @Param("example") EmpExample example);

    int updateByExample(@Param("record") Emp record, @Param("example") EmpExample example);

    int updateByPrimaryKeySelective(Emp record);

    int updateByPrimaryKey(Emp record);

    /**
     * 查询所有员工
     * @return
     */
    List<Emp> checkAllEmp();
    /**
     * 根据ID查询员工
     * @param id
     * @return
     */
	Emp checkEmpById(Integer id);
	/**
	 * 修改员工信息
	 * @param emp
	 * @return
	 */
	int updateEmp(Emp emp);
	/**
	 * 删除员工
	 * @param id
	 * @return
	 */
	int delEmp(Integer id);
	/**
	 * 添加员工
	 * @param emp
	 * @return
	 */
	int addEmp(Emp emp);
	/**
	 * 通过手机查询员工信息
	 * @param phone
	 * @return
	 */
	Emp checkEmpByPhone(String phone);
	
    List<Emp> emplist(Map<String, Integer> map);
	/**
	 * 根据用户名查找员工
	 * @param username
	 * @return
	 */
	public Emp getByUserName(String username);
	/**
	 * 根据用户名查找角色
	 * @param username
	 * @return
	 */
	public Set<String> getRoles(String username);
	
	/**
	 * 根据用户名查找权限
	 * @param username
	 * @return
	 */
	public Set<String> getPermissions(String username);
	
	/**
	 * 通过id和密码查询是否存在此客户
	 * 用于修改密码
	 * @return
	 */
	public Emp getEmpByIdAndPwd(Emp emp);
	
	/**
	 * 密码修改
	 * @param emp
	 * @return
	 */
	public int updatePwdById(Emp emp);
	/**
	 * 查询经办人信息
	 * @return
	 */
	public List<Emp> checkEmpnameByAllot();
	/**
	 * 通过员工姓名查询员工手机
	 * @param empname
	 * @return
	 */
	public Emp checkPhoneByName(String empname);
}